#ifndef GSP_BASE_KEYWORDS_H
#define GSP_BASE_KEYWORDS_H

#ifdef __cplusplus
extern "C" {
#endif


typedef struct ScanKeyword
{
	const char *name;			/* in lower case */
	int		value;			/* grammar's token code */
	int		category;		/* see codes above */
} ScanKeyword;


/* Keyword categories --- should match lists in gram.y */
#define UNRESERVED_KEYWORD		0
#define COL_NAME_KEYWORD		1
#define TYPE_FUNC_NAME_KEYWORD	2
#define RESERVED_KEYWORD		3
#define FAKE_KEYWORD_IDENTIFIER		4
#define FAKE_KEYWORD_NOT_USED		5


#define CMTSlashStar  257
#define CMTDoublehyphen  258
#define LEXSPACE  259
#define LEXNEWLINE  260
#define FCONST  261
#define SCONST  262
#define ICONST  263
#define IDENT  264
#define Op  265
#define CmpOp  266
#define BIND_V  267
#define ASSIGN_SIGN  268
#define DOUBLE_DOT  269
#define LABEL_BEGIN  270
#define LABEL_END  271
#define SUBSTITUTION_V  272
#define SQLPLUSCMD  273
#define LEX_ERROR  274
#define VARIABLE  275
#define MSLABEL  276
#define BCONST   276
#define LEFTJOIN_OP  277
#define RIGHTJOIN_OP  278
#define XCONST   279
#define DB2LABEL  279
#define REF_ARROW  280
#define RW_ScriptOptions  281
#define MYSQLLABEL  282
#define QUOTED_IDENT 282
#define ConcatenationOP  283
#define RW_NOT_DEFERRABLE  284
#define RW_FOR1  285
#define STMT_DELIMITER  286
#define M_CLAUSE  287
#define TYPECAST  287
#define K_CLAUSE  288
#define OUTER_JOIN  289
#define NOT_EQUAL  290
#define NOT_GREAT  291
#define NOT_LESS  292
#define GREAT_EQUAL  293
#define LESS_EQUAL  294
#define EXPONENTIATE  295
#define RW_LOCKTABLE  296
#define RW_FOREIGN2  297
#define RW_CONSTRAINT2  298
#define RW_PRIMARY2  299
#define RW_UNIQUE2  300
#define RW_SELECT  301
#define RW_INSERT  302
#define RW_DELETE  303
#define RW_UPDATE  304
#define RW_IF  305
#define RW_FOR  306
#define RW_CREATE  307
#define RW_TABLE  308
#define RW_INDEX  309
#define RW_VIEW  310
#define RW_WITH  311
#define RW_START  312
#define RW_END  313
#define RW_DROP  314
#define RW_DECLARE  315
#define RW_CASE  316
#define RW_WHERE  317
#define RW_HAVING  318
#define RW_AND  319
#define RW_OR  320
#define RW_NOT  321
#define RW_WHEN  322
#define RW_ON  323
#define RW_JOIN  324
#define RW_SET  325
#define RW_VALUES  326
#define RW_OBJECT  327
#define RW_RECORD  328
#define RW_FROM  329
#define RW_GROUP  330
#define RW_SORT  331
#define RW_INTO  332
#define RW_ORDER  333
#define RW_FETCH  334
#define RW_DECODE  335
#define RW_OVER  336
#define RW_EXTRACT  337
#define RW_DISTINCT  338
#define RW_ALL  339
#define RW_BY  340
#define RW_AS  341
#define RW_UNION  342
#define RW_LEFT  343
#define RW_RIGHT  344
#define RW_INNER  345
#define RW_FULL  346
#define RW_OUTER  347
#define RW_THEN  348
#define RW_ELSE  349
#define RW_BETWEEN  350
#define RW_BEGIN  351
#define RW_EXCEPT  352
#define RW_MINUS  353
#define RW_INTERSECT  354
#define RW_BIT  355
#define RW_TINYINT  356
#define RW_SMALLINT  357
#define RW_MEDIUMINT  358
#define RW_MIDDLEINT  359
#define RW_INT  360
#define RW_INTEGER  361
#define RW_INT1  362
#define RW_INT2  363
#define RW_INT3  364
#define RW_INT4  365
#define RW_INT8  366
#define RW_BIGINT  367
#define RW_FLOAT  368
#define RW_FLOAT4  369
#define RW_FLOAT8  370
#define RW_NUM  371
#define RW_NUMERIC  372
#define RW_NUMBER  373
#define RW_REAL  374
#define RW_DECIMAL  375
#define RW_DEC  376
#define RW_DOUBLE  377
#define RW_PRECISION  378
#define RW_CHAR  379
#define RW_NCHAR  380
#define RW_CHARACTER  381
#define RW_VARCHAR  382
#define RW_VARCHAR2  383
#define RW_NATIONAL  384
#define RW_NVARCHAR  385
#define RW_NVARCHAR2  386
#define RW_VARBINARY  387
#define RW_VARYING  388
#define RW_TINYTEXT  389
#define RW_TEXT  390
#define RW_MEDIUMTEXT  391
#define RW_LONGTEXT  392
#define RW_TIME  393
#define RW_DATE  394
#define RW_TIMESTAMP  395
#define RW_YEAR  396
#define RW_LOCAL  397
#define RW_ZONE  398
#define RW_LONG  399
#define RW_RAW  400
#define RW_BLOB  401
#define RW_TINYBLOB  402
#define RW_MEDIUMBLOB  403
#define RW_LONGBLOB  404
#define RW_CLOB  405
#define RW_NCLOB  406
#define RW_DBCLOB  407
#define RW_BFILE  408
#define RW_LARGE  409
#define RW_DATA  410
#define RW_BINARY  411
#define RW_GRAPHIC  412
#define RW_VARGRAPHIC  413
#define RW_DATALINK  414
#define RW_ENUM  415
#define RW_INTERVAL  416
#define RW_UROWID  417
#define RW_MERGE  418
#define RW_COMMIT  419
#define RW_ROLLBACK  420
#define RW_SAVEPOINT  421
#define RW_REVOKE  422
#define RW_GRANT  423
#define RW_TRUNCATE  424
#define RW_DATABASE  425
#define RW_ALTER  426
#define RW_RETURN  427
#define RW_ADD  428
#define RW_CLOSE  429
#define RW_CONTINUE  430
#define RW_BACKUP  431
#define RW_BREAK  432
#define RW_BULK  433
#define RW_DBCC  434
#define RW_DEALLOCATE  435
#define RW_DENY  436
#define RW_DISABLE  437
#define RW_ENABLE  438
#define RW_EXEC  439
#define RW_EXECUTE  440
#define RW_GOTO  441
#define RW_KILL  442
#define RW_OPEN  443
#define RW_SAVE  444
#define RW_MOVE  445
#define RW_PRINT  446
#define RW_RAISERROR  447
#define RW_READTEXT  448
#define RW_RECEIVE  449
#define RW_RECONFIGURE  450
#define RW_RESTORE  451
#define RW_SEND  452
#define RW_SETUSER  453
#define RW_SHUTDOWN  454
#define RW_SIGN  455
#define RW_TRY  456
#define RW_UPDATETEXT  457
#define RW_USE  458
#define RW_WAITFOR  459
#define RW_WHILE  460
#define RW_WRITETEXT  461
#define RW_CATCH  462
#define RW_GO  463
#define RW_OPENROWSET  464
#define RW_ANALYZE  465
#define RW_ASSOCIATE  466
#define RW_AUDIT  467
#define RW_CALL  468
#define RW_COMMENT  469
#define RW_DISASSOCIATE  470
#define RW_EXPLAIN  471
#define RW_FLASHBACK  472
#define RW_LOCK  473
#define RW_NOAUDIT  474
#define RW_PURGE  475
#define RW_RENAME  476
#define RW_PROCEDURE  477
#define RW_FUNCTION  478
#define RW_PACKAGE  479
#define RW_ALLOCATE  480
#define RW_CONNECT  481
#define RW_DESCRIBE  482
#define RW_DISCONNECT  483
#define RW_FLUSH  484
#define RW_FREE  485
#define RW_GET  486
#define RW_INCLUDE  487
#define RW_ITERATE  488
#define RW_LEAVE  489
#define RW_LOOP  490
#define RW_PREPARE  491
#define RW_REFRESH  492
#define RW_RELEASE  493
#define RW_REPEAT  494
#define RW_RESIGNAL  495
#define RW_SIGNAL  496
#define RW_CACHE  497
#define RW_CHANGE  498
#define RW_CHECK  499
#define RW_CHECKSUM  500
#define RW_DO  501
#define RW_HANDLER  502
#define RW_LOAD  503
#define RW_OPTIMIZE  504
#define RW_REPLACE  505
#define RW_REPAIR  506
#define RW_RESET  507
#define RW_SHOW  508
#define RW_STOP  509
#define RW_UNLOCK  510
#define RW_TERMINATE  511
#define RW_TO  512
#define RW_PRIMARY  513
#define RW_UNIQUE  514
#define RW_CONSTRAINT  515
#define RW_FOREIGN  516
#define RW_REVERT  517
#define RW_CHECKPOINT  518
#define RW_CALCULATE  519
#define RW_CLEAR  520
#define RW_DRILLTHROUGH  521
#define RW_FREEZE  522
#define RW_EXISTING  523
#define RW_SCOPE  524
#define RW_IS  525
#define RW_BODY  526
#define RW_ABORT  527
#define RW_USING  528

// oracle related
#define	RW_NOT_DEFERRABLE  284
#define	RW_ORACLE_DEFERRABLE  537
#define RW_DIRECT_LOAD  538


#ifdef __cplusplus
}
#endif

#endif
